前一天我們介紹了機器學習的模型與優化器,今天來介紹Python在建立機器學習模型與超參數的技巧。
在 Scikit-learn 中,建立一個機器學習的模型其實非常簡單
讀進資料,並檢查資料的 shape (有多少 samples (rows), 多少 features (columns),label 的型態是什麼?)
讀取資料的方法:
使用train_test_split將資料切為訓練 (train) / 測試 (test),通常切分成訓練資料集0.7測試資料集0.3
train_test_split(data)
建立模型,將資料 fit 進模型開始訓練
clf = LinearRegression()
clf.fit(x_train, y_train)
將測試資料 (features) 放進訓練好的模型中,得到 prediction,與測試資料的 label (y_test) 做評估
clf.predict(x_test)
accuracy_score(y_test, y_pred)
f1_score(y_test, y_pred)
若持續使用同一份驗證集 (validation) 來調參,可能讓模型的參數過於擬合該驗證集,正確的步驟是使用 Cross-validation 確保模型泛化性
超參數調整通常都是機器學習專案的最後步驟,因為這對於最終的結果影響不會太多,多半是近一步提升 3-5 % 的準確率,但是好的特徵工程與資料清理是能夠一口氣提升 10-20 %的準確率!因此超參數調整對最終結果影響沒有特徵工程來得大,建議一開始時多花費時間在特徵工程上面
今天先介紹到這,明天我們來介紹隨機森林與梯度提升機。